其他
手把手教你在显示设备上制作一个菜单
点击上方“果果小师弟”,选择“置顶/星标公众号”
干货福利,第一时间送达!
1、菜单设计
2、实现思路
菜单的实现方式有多种。就上述菜单而言,可以通过以下方法实现。
(1)首先,显示上述初始画面。
3、硬件电路
4、程序流程图
先画好程序流程图,整理好显示思路与逻辑,之后按照步骤写出对应函数的驱动代码。最后下载实验显示即可。
5、具体代码
{
switch(t)
{
case 1:
LCD_Clear(WHITE);
LCD_ShowString(20,20,200,24,24,(u8*)"Select:");
LCD_ShowString(20,50,200,24,24,(u8*)"-->");
LCD_ShowString(60,50,200,24,24,(u8*)"light led0");
LCD_ShowString(60,80,200,24,24,(u8*)"light led1");
LCD_ShowString(60,110,200,24,24,(u8*)"light two led");
break;
case 2:
LCD_Clear(WHITE);
LCD_ShowString(20,20,200,24,24,(u8*)"Select:");
LCD_ShowString(60,50,200,24,24,(u8*)"light led0");
LCD_ShowString(20,80,200,24,24,(u8*)"-->");
LCD_ShowString(60,80,200,24,24,(u8*)"light led1");
LCD_ShowString(60,110,200,24,24,(u8*)"light two led");
break;
case 3:
LCD_Clear(WHITE);
LCD_ShowString(20,20,200,24,24,(u8*)"Select:");
LCD_ShowString(60,50,200,24,24,(u8*)"light led0");
LCD_ShowString(60,80,200,24,24,(u8*)"light led1");
LCD_ShowString(20,110,200,24,24,(u8*)"-->");
LCD_ShowString(60,110,200,24,24,(u8*)"light two led");
break;
}
}
while(1)
{
t=KEY_Scan(0);//按键检测哪一个按键按下
switch(t)
{
case 1: //KEY1 确定按键按下
flag=0;
ExecuteFunction(cur);//执行确定按键操作
break;
case 2: flag=1; //KEY2 下移按键按下
if(cur==3) //如果是最后一个菜单
cur=1; //重新指向菜单1
else //如果不是最后一个菜单
cur++; //重新指向菜单+1
break;
}
if(flag)
{
DisplayMenu(cur);//显示对应菜单画面
flag=0;
}
}
最终结果如下:
总结:菜单的切换就是不断地检测相应的按键按下,首先清屏,然后将箭头放在菜单的第二项,或者跳转到第二个画面,如果光标处于最后一个菜单项或者处于最后一个画面,则移动到第一个菜单项。按下—清屏—显示,三步即可。
后台回复:菜单,获取本文相关代码。
End